package com.seed.application.datasourcekey;

import cn.hutool.core.util.StrUtil;
import com.seed.application.A;
import com.seed.application.env.AppEnv;
import com.seed.application.env.MicroEnv;

/**
 * dataSourceKey: 数据源键
 * 默认：开发系统数据源
 * app：内部主应用数据源
 * tenant_app：租户主应用数据源
 * owner.app：内部主应用数据源(带拥有者)
 * owner.tenant_app：租户主应用数据源(带拥有者)
 * app_micro：内部微服务数据源
 * tenant_app_micro：租户微服务数据源
 * owner.app_micro：内部微服务数据源(带拥有者)
 * owner.tenant_app_micro：租户微服务数据源(带拥有者)
 */
public class DevDataSourceKeyStrategy implements DataSourceKeyStrategy {

    @Override
    public String getResult(String tenantname) {
        String owner = AppEnv.getOwner();
        String appName = AppEnv.getAppName();
        String microName = MicroEnv.getMicroName();
        return  (StrUtil.isBlank(owner) ? "" : owner + '.') +
                (StrUtil.isBlank(tenantname) ? "" : tenantname + '_') +
                appName +
                (StrUtil.isBlank(microName) ? "" : '_' + microName);
    }
}
